package com.util.tools;

import android.content.Context;
import android.util.DisplayMetrics;

/**
 * @Description: 获取屏幕信息
 * @author JinGang
 * @date 2013-4-27 下午5:04:54 density = densityDpi/160 px(pixels) = dip *
 *       (densityDpi/160) = dip*density dip(device independent pixels) = dp dip
 *       = (px * 160)/densityDpi = px / density
 */
public class ScreenUtil {

	/**
	 * @Title: getScreenWidth
	 * @Description: 获取屏幕的宽度
	 * @param @param context
	 * @param @return 参数
	 * @return int 返回类型
	 * @throws
	 */
	public static int getScreenWidth(Context context) {
		DisplayMetrics dm = context.getResources().getDisplayMetrics();
		return dm.widthPixels;
	}

	/**
	 * @Title: getScreenHeight
	 * @Description: 获取屏幕的高度
	 * @param @param context
	 * @param @return 参数
	 * @return int 返回类型
	 * @throws
	 */
	public static int getScreenHeight(Context context) {
		DisplayMetrics dm = context.getResources().getDisplayMetrics();
		return dm.heightPixels;
	}

	/**
	 * @Title: getScreenDensity
	 * @Description: 获取屏幕的密度
	 * @param @param context
	 * @param @return 参数
	 * @return float 返回类型
	 * @throws
	 */
	public static float getScreenDensity(Context context) {
		try {
			DisplayMetrics dm = context.getResources().getDisplayMetrics();
			return dm.density;
		} catch (Exception ex) {
			ex.printStackTrace();
		}
		return 1.0f;
	}

	/**
	 * @Title: getScreenDensity
	 * @Description: 获取屏幕的密度
	 * @param @param context
	 * @param @return 参数
	 * @return float 返回类型
	 * @throws
	 */
	public static int getScreenDensityDPI(Context context) {
		try {
			DisplayMetrics dm = context.getResources().getDisplayMetrics();
			return dm.densityDpi;
		} catch (Exception ex) {
			ex.printStackTrace();
		}
		return 0;
	}

	/**
	 * * 根据手机的分辨率从 dp 的单位 转成为 px(像素)
	 */
	public static int dip2px(Context context, float dpValue) {
		final float scale = context.getResources().getDisplayMetrics().density;
		return (int) (dpValue * scale + 0.5f);
	}

	/**
	 * * 根据手机的分辨率从 px(像素) 的单位 转成为 dp
	 */
	public static int px2dip(Context context, float pxValue) {
		final float scale = context.getResources().getDisplayMetrics().density;
		return (int) (pxValue / scale + 0.5f);
	}
}